package com.logic.modular.game.battle.info.roundInfo.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.io.Serializable;

import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.logic.modular.game.battle.info.roundInfo.dto.PvpBattleStatisticsPlayerInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.experimental.Accessors;

/**
 * pvp战斗统计信息(PvpBattleStatisticsInfo)表实体类
 *
 * @author cxy
 * @since 2024-09-05 14:56:05
 */
@ApiModel("pvp战斗统计信息")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(autoResultMap = true)
public class PvpBattleStatisticsInfo extends Model<PvpBattleStatisticsInfo> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("战斗id 主键")
    private Long battleId;

    @ApiModelProperty("战斗唯一id")
    private String battleUid;

    @ApiModelProperty("对局id")
    private Long matchId;

    @ApiModelProperty("城池ID")
    private Long cityId;

    @ApiModelProperty("战斗回合数")
    private Integer roundCount;

    @ApiModelProperty("胜利方玩家ID")
    private Long winPlayerId;

    @ApiModelProperty("攻击方玩家uid")
    private Long attackPlayerUid;

    @ApiModelProperty("攻击方玩家信息")
    @TableField(typeHandler = JacksonTypeHandler.class)
    public PvpBattleStatisticsPlayerInfo attackPlayerInfo;

    @ApiModelProperty("防守方玩家uid")
    private Long defendPlayerUid;

    @ApiModelProperty("防守方玩家信息")
    @TableField(typeHandler = JacksonTypeHandler.class)
    public PvpBattleStatisticsPlayerInfo defendPlayerInfo;

    @ApiModelProperty("战斗开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime = new Date();

    @ApiModelProperty("战斗结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;

    @ApiModelProperty("是否已收藏 ")
    private Integer isCollect;

    @ApiModelProperty("是否已读")
    private Integer isRead;

    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = 864095019139369454L;


    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.battleId;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 非数据库字段
    /////////////////////////////////////////////////////////////////////////////////////////////////////////    领域业务
}

